package be.jprojects.subscription.dataaccess;

import be.jprojects.subscription.dataaccess.mysql.MySQLDataAccessObjectFactory;

public abstract class DataAccessObjectFactory {
	private static DataAccessObjectFactory implementation;

	public abstract PersonDataAccess getPersonDataAccess();
	public abstract CityDataAccess getCityDataAccess();
	public abstract CountryDataAccess getCountryDataAccess();
	public abstract ProvinceDataAccess getProvinceDataAccess();
	public abstract StreetDataAccess getStreetDataAccess();	

	public static DataAccessObjectFactory getImplementation() throws Exception {
		if (implementation == null) {
			implementation = new MySQLDataAccessObjectFactory();
		}
		return implementation;
	}
	
	
}
